//package com.yc.meeting_attendance.fragment;
//
//import android.media.AudioManager;
//import android.media.SoundPool;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.support.v4.widget.SwipeRefreshLayout;
//import android.support.v7.widget.LinearLayoutManager;
//import android.util.Log;
//import android.view.View;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import com.alibaba.fastjson.JSON;
//import com.hwangjr.rxbus.annotation.Subscribe;
//import com.hwangjr.rxbus.annotation.Tag;
//import com.yc.meeting_attendance.MyApp;
//import com.yc.meeting_attendance.R;
//import com.yc.meeting_attendance.adapter.AttendanceAdapter;
//import com.yc.meeting_attendance.adapter.MeetingRecyclerAdapter;
//import com.yc.meeting_attendance.entity.AttendanceResutl;
//import com.yc.meeting_attendance.entity.MeetingCheck;
//import com.yc.meeting_attendance.entity.MeetingResutl;
//import com.yc.meeting_attendance.entity.PersonnelResutl;
//import com.yc.meeting_attendance.entity.Resutl;
//import com.yc.meeting_attendance.net.AbsAPICallback;
//import com.yc.meeting_attendance.net.Api;
//import com.yc.meeting_attendance.utils.DatetimeUtil;
//import com.yc.meeting_attendance.utils.RealmHelper;
//import com.yc.nfc.CardInfo;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Timer;
//import java.util.TimerTask;
//
//import io.realm.Realm;
//import io.realm.RealmAsyncTask;
//import rx.Subscriber;
//
///**
// * Created by PC on 2017/4/11.
// */
//
//public class AttendanceFragment extends BaseFragment {
//    private com.yc.meeting_attendance.wideget.HaoRecyclerView hao_recycleview;
//    private SwipeRefreshLayout swiperefresh;
//    private MeetingRecyclerAdapter meetingAdapter;
//    private TextView num;
//    SoundPool soundPool = null;
//    SoundPool soundPool1 = null;
//    int sourceid = 0;
//    int failure = 0;
//    boolean isSoundReady;
//    RealmHelper realmHelper = new RealmHelper(getActivity());
//    AttendanceAdapter attendanceAdapter;
//    int realized = 0;
//    private Realm mRealm;
//    boolean fig = false;
//    List<MeetingCheck> list1 = new ArrayList<>();
//    List<MeetingCheck> list2 = new ArrayList<>();
//    List<String> MeetingId = new ArrayList<>();
//    List<String> BigenCard = new ArrayList<>();
//    List<String> EndCard = new ArrayList<>();
//    com.yc.meeting_attendance.wideget.DefinedListView listview;
//
//
//    public    List<String> bigenCard = new ArrayList<>();
//    public    List<String> endCard = new ArrayList<>();
//    public    List<String> meetingId = new ArrayList<>();
//    int indexBigen;
//    int indexEnd;
//    boolean subscript;
//    List<PersonnelResutl> list = new ArrayList<>();
//
//    @Override
//    protected void initView(Bundle savedInstanceState) {
//        setContentView(R.layout.fragment_attendance);
//        listview = getViewById(R.id.listview);
//        loadMusic();
//        SetMeeting();
//
//
//    }
//
//    private void SetMeeting() {
//        hao_recycleview = getViewById(R.id.hao_recycleview_new);
//        swiperefresh = getViewById(R.id.swiperefresh);
//        num = getViewById(R.id.num);
//        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
//        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//       hao_recycleview.setLayoutManager(layoutManager);
//        meetingAdapter = new MeetingRecyclerAdapter(getActivity());
//        hao_recycleview.setAdapter(meetingAdapter);
//        init();
//        timer.schedule(task, 1000, 1000);
//        num.setText(mSharePreferenceUtil.getRealized() + "/" + list.size());
//        DtaeMeeting();
//        attendanceAdapter = new AttendanceAdapter(getActivity());
//        listview.setAdapter(attendanceAdapter);
//
//    }
//
//    private void init() {
//        swiperefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
//            @Override
//            public void onRefresh() {
//
//                new Handler().postDelayed(new Runnable() {
//                    public void run() {
////                        mSharePreferenceUtil.setFig(false);
//                        DtaeMeeting();
//                        //注意此处
//                        meetingAdapter.clearDate();
//                        //注意此处
//                        hao_recycleview.refreshComplete();
//                        swiperefresh.setRefreshing(false);
//
//                        meetingAdapter.notifyDataSetChanged();
//                    }
//                }, 200);
//
//            }
//        });
//    }
//
//    private void DtaeMeeting() {
//
//        Api.getInstance().GetMeeting(new AbsAPICallback<AttendanceResutl>(mContext) {
//
//            @Override
//            public void onCompleted() {
//            }
//
//
//            @Override
//            public void onNext(AttendanceResutl attendanceResutl) {
//                    realmHelper.deleteDogAll(MeetingResutl.class);
//                    realmHelper.deleteDogAll(PersonnelResutl.class);
//
//                if (attendanceResutl.isCode()) {
//                    Log.d("TAG","attendanceResutl.GET:"+attendanceResutl.getMeeting().size());
//                    Log.d("TAG","attendanceResutl.GET:"+ attendanceResutl.getMessage());
//                    if (attendanceResutl.getMeeting().size()!=0){
//                        if (attendanceResutl.getMeeting() != null) {
//
//                            if (attendanceResutl.getMeeting() != null) {
//                                mSharePreferenceUtil.setClassId(attendanceResutl.getMeeting().get(0).getRoomName());
//                                for (int i = 0; i < attendanceResutl.getMeeting().size(); i++) {
//                                    bigenCard.add(DatetimeUtil.getSysDate("yyyy-MM-dd ") + attendanceResutl.getMeeting().get(i).getBegin());
//                                    endCard.add(DatetimeUtil.getSysDate("yyyy-MM-dd ") + attendanceResutl.getMeeting().get(i).getEnd());
//                                    meetingId.add(attendanceResutl.getMeeting().get(i).getUuid());
//                                    mSharePreferenceUtil.setMeetingId(meetingId);
//                                    mSharePreferenceUtil.setbigenCard(bigenCard);
//                                    mSharePreferenceUtil.settEndCard(endCard);
//
//                                }
//                            }
//                            for (int i = 0; i < attendanceResutl.getMeeting().size(); i++) {
//                                MeetingResutl meetingResutl = new MeetingResutl();
//                                meetingResutl.setBegin(attendanceResutl.getMeeting().get(i).getBegin());
//                                meetingResutl.setEnd(attendanceResutl.getMeeting().get(i).getEnd());
//                                meetingResutl.setMeetingContent(attendanceResutl.getMeeting().get(i).getMeetingContent() + "");
//                                meetingResutl.setUuid(attendanceResutl.getMeeting().get(i).getUuid());
//                                meetingResutl.setMeetingName(attendanceResutl.getMeeting().get(i).getMeetingName());
//                                realmHelper.addDog(meetingResutl);
//                            }
//                            for (int i = 0; i < attendanceResutl.getMeeting().size(); i++) {
//                                for (int j = 0; j < attendanceResutl.getMeeting().get(i).getMeetingemp().size(); j++) {
//                                    PersonnelResutl personnelResutl = new PersonnelResutl();
//                                    personnelResutl.setUuid(attendanceResutl.getMeeting().get(i).getMeetingemp().get(j).getUuid());
//                                    personnelResutl.setXm(attendanceResutl.getMeeting().get(i).getMeetingemp().get(j).getXm());
//                                    personnelResutl.setCardNo(attendanceResutl.getMeeting().get(i).getMeetingemp().get(j).getCardNo()+"");
//                                       personnelResutl.setMeetingId(attendanceResutl.getMeeting().get(i).getUuid());
//                                    personnelResutl.setType(0);
//                                    personnelResutl.setTime("00:00");
//                                    personnelResutl.setInResult("4");
//                                    personnelResutl.setOutResult(null);
//                                    personnelResutl.setAttendResult("4");
//                                    personnelResutl.setLg("0");
//                                    personnelResutl.setWlkh(attendanceResutl.getMeeting().get(i).getMeetingemp().get(j).getFactoryfixId()+"");
//                                    personnelResutl.setTermCode(mSharePreferenceUtil.getClassId());
//                                    realmHelper.addDog(personnelResutl);
//                                }
//
//                            }
//                            mSharePreferenceUtil.setFig(true);
//
//                       }
//
//                   }
//                        meetingAdapter.clearDate();
//                        meetingAdapter.setDate(realmHelper.QueryAll());
//
//                    Log.d("TAG", "QueryAll:" + realmHelper.QueryAll().size());
//
//
//                }
//            }
//
//            @Override
//            public void onError(Throwable e) {
//
//                super.onError(e);
//                Log.i("TAG", "e：" + e.getMessage());
//            }
//
//        }, mSharePreferenceUtil.getEquipment(),DatetimeUtil.getSysDate("yyyy-MM-dd"));
//
//    }
//
//
//    @Override
//    protected void setListener() {
//
//    }
//    @Override
//    protected void processLogic(Bundle savedInstanceState) {
//
//    }
//
//    @Override
//    protected void onUserVisible() {
//
//    }
//
//    @Subscribe(tags = @Tag("card"))
//    public void onReadCard(CardInfo cardInfo) {
//        String Bigen = DatetimeUtil.getDateTimeFromMillisecond(DatetimeUtil.TimeStrToSecond(BigenCard.get(indexBigen)) - 1000 * 60 * mSharePreferenceUtil.getAdvance());
//        Log.d("TAG:", "card:" + cardInfo.getCardID());
//        if (DatetimeUtil.getSysDate("yyyy-MM-dd HH:mm:ss").equals(Bigen)) {
//            Date(cardInfo.getCardID());
//            if (isSoundReady) {
//                  soundPool.play(1, 1, 1, 0, 0, 1);
//            }
//
//
//        } else {
//            Toast.makeText(getActivity(), "暂时没有签到的会议", Toast.LENGTH_SHORT).show();
//            soundPool1.play(1, 1, 1, 0, 0, 1);
//        }
//    }
//
//    @Subscribe(tags = @Tag("failure"))
//    public void failure(String card) {
//        if (isSoundReady) {
//            soundPool1.play(1, 1, 1, 0, 0, 1);
//        }
//
//    }
//
//    Timer timer = new Timer(true);
//    TimerTask task = new TimerTask() {
//
//        @Override
//        public void run() {
//            handler.sendEmptyMessage(1);
//        }
//    };
//
//    Handler handler = new Handler() {
//        @Override
//        public void handleMessage(Message msg) {
//            super.handleMessage(msg);
//            switch (msg.what) {
//                case 1:
//                    if (DatetimeUtil.getSysDate("HH:mm:ss").equals("00:00:00")) {
//                        mSharePreferenceUtil.setFig(false);
//                        DtaeMeeting();
//                    }
//                    mSharePreferenceUtil.setIndexBigen(0);
//                    mSharePreferenceUtil.setIndexEnd(0);
//                    indexBigen = mSharePreferenceUtil.getIndexBigen();
//                    indexEnd = mSharePreferenceUtil.getIndexEnd();
//                    subscript = mSharePreferenceUtil.getSubscript();
//                    String Bigen = DatetimeUtil.getDateTimeFromMillisecond(DatetimeUtil.TimeStrToSecond(
//                    BigenCard.get(indexBigen)) -1000*60*mSharePreferenceUtil.getAdvance()-1000*60*10);
//                    String End = DatetimeUtil.getDateTimeFromMillisecond(DatetimeUtil.TimeStrToSecond(
//                    EndCard.get(indexEnd)) + 1000*60*mSharePreferenceUtil.getleaveEalry());
//                    Log.d("TAG", "开始时间：" + Bigen);
//                    Log.d("TAG", "结束时间：:" + End);
//                    if (DatetimeUtil.getSysDate("yyyy-MM-dd HH:mm:ss").equals(Bigen)) {
//                        mSharePreferenceUtil.setSubscript(true);
//                        mSharePreferenceUtil.setIndexBigen(indexBigen);
//                    }
//                    if (subscript) {
//                        num.setText(mSharePreferenceUtil.getRealized() + "/" + list.size());
//                        listview.setVisibility(View.VISIBLE);
//                        list = realmHelper.queryDobByAge(MeetingId.get(mSharePreferenceUtil.getIndexBigen()));
//                        attendanceAdapter.clear();
//                        attendanceAdapter.setDate(list);
//
//                    }
//                    if (DatetimeUtil.getSysDate("yyyy-MM-dd HH:mm:ss").equals(End)) {
//                        listview.setVisibility(View.GONE);
//                        UploadCheck();
//                        mSharePreferenceUtil.setSubscript(false);
//                        num.setText(0 + "/" + 0);
//                        indexEnd++;
//                        indexBigen++;
//                        mSharePreferenceUtil.setRealized(0);
//                        mSharePreferenceUtil.setIndexEnd(indexEnd);
//                    }
//
//                    break;
//            }
//        }
//    };
//
//    private void Date(String name) {
//        MeetingCheck meetingCheck = new MeetingCheck();
//        indexBigen = mSharePreferenceUtil.getIndexBigen();
//        for (int i = 0; i < list.size(); i++) {
//            if (list.get(i).getWlkh() != null) {
//                if (list.get(i).getWlkh().equals(name)) {
//                    list.get(i).setTime(DatetimeUtil.getSysDate("HH:mm"));
//                    realmHelper.UpdateDog(i, name, DatetimeUtil.getSysDate("HH:mm"));
//                    meetingCheck.setMeetingId(list.get(i).getMeetingId());
//                    meetingCheck.setInResult("4");
//                    meetingCheck.setTermCode(mSharePreferenceUtil.getClassId());
//                    meetingCheck.setLg("0");
//                    meetingCheck.setTime(DatetimeUtil.getSysDate("yyyy-MM-dd HH:mm:ss"));
//                    Log.d("TAG", "Time:" + meetingCheck.getTime());
//                    Log.d("TAG", "getInResult:" + meetingCheck.getInResult());
//                    if (meetingCheck.getInResult().equals("1")) {
//                        meetingCheck.setAttendResult("1");
//                    } else if (meetingCheck.getInResult().equals("2")) {
//                        meetingCheck.setAttendResult("2");
//
//                    } else if (meetingCheck.getInResult().equals("4")) {
//                        meetingCheck.setAttendResult("4");
//                    }
//                    meetingCheck.setWlkh(name);
//                    if (list.get(i).getType() == 0) {
//                        realized++;
//                        list.get(i).setType(1);
//                        realmHelper.UpdateDogTye(name, 1);
//                        mSharePreferenceUtil.setRealized(realized);
//
//                    }
//                    meetingCheck.setOutResult("0");
//                    realmHelper.addDog(meetingCheck);
//
//                }
//            }
//        }
//
//        num.setText(mSharePreferenceUtil.getRealized() + "/" + list.size() + "");
//        attendanceAdapter.notifyDataSetChanged();
//    }
//
//    //如果有2条以上或者2条 而且开启签退 取第一条和最后一条，不然取第一条
//    private void UploadCheck() {
//        list = realmHelper.queryDobByAge(MeetingId.get(indexBigen));
//        Log.d("TAG", "list:" + list.size());
//        for (int i = 0; i < list.size(); i++) {
//            Log.d("TAG", "Wlkh:" + list.get(i).getWlkh());
//            if (realmHelper.QueryDobByAge(list.get(i).getWlkh(),list.get(i).getMeetingId()).size() == 0) {
//                MeetingCheck meetingCheck = new MeetingCheck();
//                meetingCheck.setMeetingId(list.get(i).getMeetingId());
//                meetingCheck.setInResult("4");
//                meetingCheck.setTermCode(mSharePreferenceUtil.getClassId());
//                meetingCheck.setLg("0");
//                meetingCheck.setInResult("1");
//                meetingCheck.setTime("00:00");
//                meetingCheck.setWlkh(list.get(i).getWlkh());
//                meetingCheck.setOutResult("0");
//                meetingCheck.setAttendResult("0");
//                realmHelper.addDog(meetingCheck);
//            }
//
//            if (mSharePreferenceUtil.getNeedCheckout() == 1) {
//                if (realmHelper.QueryDobByAge(list.get(i).getWlkh(),list.get(i).getMeetingId()).size() >= 2) {
//                    realmHelper.updateDog(list.get(i).getWlkh(), "1");
//                    list1.add(realmHelper.queryDogByIdOne(list.get(i).getWlkh()));
//                    list1.add(realmHelper.queryDogByIdLast(list.get(i).getWlkh()));
//                    if (DatetimeUtil.Getminutes(realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getTime(), BigenCard.get(indexBigen)) <= (mSharePreferenceUtil.getBeLate() + mSharePreferenceUtil.geAbsenteeisn())) {
//                        realmHelper.updateInResultOne(list.get(i).getWlkh(), "1");
//                        realmHelper.updateInResult(list.get(i).getWlkh(), "1");
//                    } else {
//                        realmHelper.updateInResultOne(list.get(i).getWlkh(), "2");
//                        realmHelper.updateInResult(list.get(i).getWlkh(), "2");
//                    }
//                    if (DatetimeUtil.Getminutes( realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getTime(),EndCard.get(indexEnd)) <= (mSharePreferenceUtil.getoutBefore() + mSharePreferenceUtil.getOutLate())) {
//                        realmHelper.updateOutResultOne(list.get(i).getWlkh(), "1");
//                        realmHelper.updateOutResult(list.get(i).getWlkh(), "1");
//                    }
//                    if (DatetimeUtil.Getminutes(EndCard.get(indexEnd), realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getTime()) <= (mSharePreferenceUtil.getoutBefore() + mSharePreferenceUtil.getleaveEalry())) {
//                        realmHelper.updateOutResultOne(list.get(i).getWlkh(), "1");
//                        realmHelper.updateOutResult(list.get(i).getWlkh(), "1");
//                    } else {
//                        realmHelper.updateOutResult(list.get(i).getWlkh(), "3");
//                        realmHelper.updateOutResultOne(list.get(i).getWlkh(), "3");
//                    }
//                    Log.d("TAG", "第一条时间：" + realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getTime());
//                    Log.d("TAG", "最后一条时间：：" + realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getTime());
//                    if (realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult().equals("1")&&realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getOutResult().equals("1")){
//                        realmHelper.updateAttendResultOne(list.get(i).getWlkh(), "1");
//                        realmHelper.updateAttendResult(list.get(i).getWlkh(), "1");
//                    }else  if (realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult().equals("2")&&realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getOutResult().equals("1")){
//                        realmHelper.updateAttendResultOne(list.get(i).getWlkh(), "2");
//                        realmHelper.updateAttendResult(list.get(i).getWlkh(), "2");
//                    }else  if (realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult().equals("1")&&realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getOutResult().equals("3")){
//                        realmHelper.updateAttendResultOne(list.get(i).getWlkh(), "3");
//                        realmHelper.updateAttendResult(list.get(i).getWlkh(), "3");
//                    }else  if (realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult().equals("2")&&realmHelper.queryDogByIdLast(list.get(i).getWlkh()).getOutResult().equals("3")){
//                        realmHelper.updateAttendResultOne(list.get(i).getWlkh(), "5");
//                        realmHelper.updateAttendResult(list.get(i).getWlkh(), "5");
//                    }else {
//                        realmHelper.updateAttendResultOne(list.get(i).getWlkh(), realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult());
//                        realmHelper.updateAttendResult(list.get(i).getWlkh(), realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getInResult());
//                    }
//                }
//                if (realmHelper.QueryDobByAge(list.get(i).getWlkh(),list.get(i).getMeetingId()).size() == 1) {
//                    list1.add(realmHelper.queryDogByIdOne(list.get(i).getWlkh()));
//                    realmHelper.updateDog(list.get(i).getWlkh(), "0");
//                    if (DatetimeUtil.Getminutes(realmHelper.queryDogByIdOne(list.get(i).getWlkh()).getTime(), BigenCard.get(indexBigen)) <= (mSharePreferenceUtil.getBeLate() + mSharePreferenceUtil.geAbsenteeisn())) {
//                        realmHelper.updateInResultOne(list.get(i).getWlkh(), "1");
//                        realmHelper.updateInResult(list.get(i).getWlkh(), "1");
//                    } else {
//                        realmHelper.updateInResultOne(list.get(i).getWlkh(), "2");
//                        realmHelper.updateInResult(list.get(i).getWlkh(), "2");
//                    }
//                }
//                Log.d("TAG", "开启签退");
//            } else {
//                list1.add(realmHelper.queryDogByIdOne(list.get(i).getWlkh()));
//                Log.d("TAG", "没开启签退");
//            }
//
//        }
//        Log.d("TAG", "json:" + JSON.toJSONString(list1));
//        Log.d("TAG", "list1:" + list1.size());
//
//        Subscriber subscr = new AbsAPICallback<Resutl>(getActivity()) {
//            @Override
//            public void onCompleted() {
//            }
//
//
//            @Override
//            public void onNext(Resutl resul) {
//                Log.d("TAG", "resul:" + resul.getMessage());
//                if (resul.isCode()) {
//                    realmHelper.deleteDogMeeting(list.get(indexBigen).getMeetingId());
//                    realmHelper.deleteDog(list.get(indexBigen).getMeetingId());
//                    list1.clear();
//                }
//
//            }
//
//            @Override
//            public void onError(Throwable e) {
//                super.onError(e);
//                Log.i("TAG", "e：" + e.getMessage());
//            }
//        };
//        Api.getInstance().UploadCheck(subscr, JSON.toJSONString(list1, true));
//
//
//    }
//
//    private void loadMusic() {
//        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 5);
//        soundPool1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 5);
//        failure = soundPool1.load(getActivity(), R.raw.failure, 0);
//        sourceid = soundPool.load(getActivity(), R.raw.media, 0);
//        soundPool
//                .setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
//
//                    public void onLoadComplete(SoundPool soundPool,
//                                               int sampleId, int status) {
//                        isSoundReady = true;
//
//                    }
//                });
//        soundPool1
//                .setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
//
//                    public void onLoadComplete(SoundPool soundPool,
//                                               int sampleId, int status) {
//                        isSoundReady = true;
//
//                    }
//                });
//
//    }
//
//    @Override
//    public void onDestroy() {
//        super.onDestroy();
//
//    }
//}
